
package com.barnabe.filters;

import java.awt.image.BufferedImage;

/* @author Arthur F. Zanona */

public class Limiar {

    public static BufferedImage executar(BufferedImage imagem ){
        return executar(imagem, 0, 0 , imagem.getWidth() , imagem.getHeight() );
    }

    public static BufferedImage executar(BufferedImage imagem , Integer inicioWidth , Integer inicioHeight , Integer fimWidth , Integer fimHeight ){
        int referencia = 50;
        for ( int i = inicioWidth ; i < fimWidth ; i++  ) {
            for ( int j = inicioHeight ; j < fimHeight ; j++ ) {
                int[] rgb = new int[3];
                imagem.getRaster().getPixel(i, j, rgb);
                // tons de cinza
                int cinza = (int) ((rgb[0] * 0.299) + (rgb[1] * 0.587) + (rgb[2] * 0.114)) ;
                // limiar sobre os tons de cinza
                rgb[0] = cinza > referencia ? 255 : 0;
                rgb[1] = cinza > referencia ? 255 : 0;
                rgb[2] = cinza > referencia ? 255 : 0;
                imagem.getRaster().setPixel(i, j, rgb);
            }
         }
         return imagem;
    }
    
}
